#include "common.h"

//用于初始化监听socket
int init_listen_socket(int *socket_fd, char *ip, char *port){
    
    //创建监听的socket
    *socket_fd = socket(AF_INET, SOCK_STREAM, 0);
    
    //解决timewait时的端口复用
    int reuse = 1;
    setsockopt(*socket_fd, SOL_SOCKET, SO_REUSEADDR, &reuse, sizeof(reuse));
    
    //创建用于绑定的addr
    struct sockaddr_in sockaddr;
    sockaddr.sin_family = AF_INET;
    sockaddr.sin_addr.s_addr = inet_addr(ip);
    sockaddr.sin_port = htons(atoi(port));
    
    //将监听socket和需要监听的addr绑定起来
    bind(*socket_fd, (struct sockaddr *) &sockaddr, sizeof(sockaddr));

    listen(*socket_fd, 10);

    return 0;

}
